フロー図描くためだけのforkとmergeしかない言語「forkerr」


概要

スクリーンショット 2014-12-22 19.32.53.png

無いので作っている。

https://github.com/sassembla/forkerr


ビジュアライザはgraphvizを使用するつもり。

http://www.graphviz.org


実装はここを見てやるつもり。

http://peta.okechan.net/blog/archives/2836



理想

図を吐き出すサービスとしてはこの辺が理想なんだけど

websequencediagrams

https://www.websequencediagrams.com

世のなかにはこういうアプローチのものが少ないっぽい。

ろくなフロー図が描けるツールが無かった。



現状への不満

なんで四角形をいっぱい置いて線で繋がないといけないの? バカなの? 

なんで分岐をN個って書いただけでパァーっと広がる線がでないの? バカなの?

なんで途中で分岐点を追加できないの? バカなの?

どうやってバージョン管理、、あっ画像でやるの? バカなの?


とかそのへん。



不満を殴り殺せば理想がある

ようは、

それっぽい言語でコード書いて、グラフが勝手に出るサイト作ればいいやと思った。

コンパイルエラーで不完全さもナビゲートできるし。

要件は以下

・コードで描ける

・分散(fork)と集結(merge)の2要素だけで描く

・defaultなし、そも母集合を定義したくないのでexhaustも無い

・ブロックで階層を表現

・特定のポイントへのジャンプが可能

・identifierはあるが、階層レベルの無視、有視が選択可能

・コードだからバージョン管理できる


以上が図ツールとしては必須な条件だと思っている。

これをサイト上で走らせればいい感じ。



今のところの式

fork TopLevel {

entry: {

fork SecondLevel {

a: {


}

b: {


}

c,d: {


}

withComment:COMMENT {


}

willMerge: {

merge TopLevel

}

_:{


}

}

}

_: {

merge exit

}

}

最終的にはこういうのがコードで描けると良いと思っている。

FlowDiagramVert.png